На главную страницу

Как работать с FTP-серверами
(справочное пособие)

Было опубликовано в SoftMarket
На многих серверах глобальной Сети находятся гигантские архивы файлов, в которых можно найти базовое ПО, утилиты и новые версии драйверов принтеров, сетевых плат, "мышей", программы исправления замеченных в коммерческих программах ошибок (patches), документацию, адреса, сборники анекдотов, ответов армянского радио и многое другое. При наличии желания (и возможностей) использовать это информационное богатство, можно воспользоваться средством, называемым ftp. Если вы пользуетесь благами IP-соединения, получить доступ к сокровищам очень просто: ftp куда.хочу.пойти.

Например:

ftp ftp.kiae.su
login: anonymous
password: ваш@email.адрес

Ещe проще действовать через программу-навигатор Mosaic:

ftp://ftp.elvis.ru/
Если же IP у вас нет, можно воспользоваться шлюзом из ftp/e-mail.

Основные понятия, связанные с передачей файлов

FTP (File Transfer Protocol - протокол передачи файлов) -
протокол семейства TCP/IP, обеспечивающий возможность найти, получить и переслать нужные файлы через Internet с одного компьютера на другой.
ftp site (ftp-площадка) -
компьютер в сети Internet, на котором ведется файловый архив, доступный для удаленных пользователей.
ftp-сервер -
программа, работающая на таком компьютере и обеспечивающая обработку запросов к архиву.
anonymous ftp server -
ftp-сервер, допускающий использование своего файлового архива без паролей доступа.
ftp-клиенты -
программы, используемые для доступа к архивам on-line.

Использование FTP

Для соединение с удаленной ftp-площадкой в ответ на системное приглашение напечатайте:
ftp
Затем
open ftp.demos.su

Если удаленная ftp-площадка не отвергла посланный запрос на соединение, например, по причине перегруженности, она запросит входное имя (login). Как правило, можно ввести ftp или anonymous. Если дополнительно запрашивается пароль (Password), обычно нужно ввести свой адрес в Сети (таким образом, термин anonymous не понимается в буквальном смысле, так как для подключения к серверу может быть проведена проверка указанного и реального обратного адреса, а те, у кого anonymous ошибочно ассоциируется с анонимностью, могут всегда пользоваться вместо anonymous именем ftp). Если на данной ftp-площадке нет запрета доступа для сторонних абонентов, можно обратиться к его архиву.

Некоторые сервисные команды

open -
устанавливает связь с ftp-площадкой. Эта команда нужна, если при вызове программы ftp связь с требуемой ftp-площадкой не была установлена, например, из-за ошибки в названии удаленной машины. Она применяется также при обращении к разным ftp-площадкам во время сеанса работы с ftp. При этом нужно сначала закрыть связь с одной ftp-площадкой с помощью команды close, а затем вызвать другую машину.

Пример:

open ftp.elvis.ru

user -
позволяет повторно ввести входное имя и пароль. Полезна, скажем, если удаленная машина не допускает пользователей с именем ftp, но может допустить с именем anonymous.

Пример:

user anonymous
close -
закрывает связь с данной ftp-площадкой

bye или quit.
Закрывает все связи и прекращает выполнение программы ftp.

help или ? -
запрашивает помощь по командам ftp. Может иметь параметр - имя интересующей команды. Если параметр не задан, выводит список команд ftp, аналогичный данному описанию, на английском языке.

remotehelp -
запрашивает справку, какие команды ftp поддерживает удаленный ftp-сервер.

Просмотр содержимого архива

Вероятнее всего, удаленная ftp-площадка использует какую-либо разновидность ОС Unix. Файловая система Unix по сравнению с MS-DOS имеет некоторые особенности. Хотя она организована иерархически, подобно MS-DOS, имена каталогов в ней разделяются символом "/", а не "\". Корневой каталог обозначается просто как "/".

В MS-DOS имя файла может иметь длину до 11 символов, 3 из которых отводятся на расширение, а в Unix этих ограничений нет, более того, у файла может быть несколько расширений, например, file.my.love. В отличие от MS-DOS, строковые и прописные буквы в именах файлов считаются различными. В итоге имена файлов ОС Unix при работе в MS-DOS приводятся к одному регистру и сокращаются до 11 символов (последние три будут отделены точкой).

Оказавшись в архиве удаленного компьютера, ориентироваться и перемещаться в нем можно посредством следующих команд Unix:

pwd -
Определить текущий каталог на удаленном компьютере.

ls -
Просмотреть краткий список файлов и подкаталогов. В качестве параметра можно задать имя интересующего вас каталога. Если параметр не задан, подразумевается текущий каталог.

dir -
Просмотреть детальный список файлов и подкаталогов, т.е. информацию не только об именах, но и размерах, датах и правах доступа. Аналогично команде ls можно задать параметр с именем каталога.

mls -
Поместить краткий список файлов и подкаталогов каталога на удаленной машине в файл на локальном устройстве.

mdir -
Поместить детальный список файлов и подкаталогов каталога на удаленной машине в файл на локальном компьютере.

cd -
Перейти в другой каталог на удаленном компьютере.

lcd -
Перейти в другой каталог на локальном компьютере.

Примеры:

lcd /r/faq dir internet/example mdir
/doc/relcom/newsgroups/creation.faq faq-list

Установка режимов передачи файлов (все команды без параметров)

ascii -
Устанавливает текстовый режим передачи файлов.

binary -
Устанавливает бинарный режим, необходимый например, для передачи исполняемых файлов.

verbose -
Включает/выключает вывод протокольных и статусных сообщений удаленной машины.

prompt -
Включает/выключает запросы на переход к передаче очередного файла в макрокомандах типа mget *.faq.

Команды передачи файлов

get или recv -
Получить файл с удаленного компьютера. В качестве обязательного параметра требуется указать имя этого файла на удаленной машине. Допускает второй параметр - новое имя файла на локальном компьютере. Пример:
get /pub/os/msdos/news-mail/dmailwin.zip

mget -
Получить несколько файлов по списку или в соответствии с маской. Пример. Получить файл mailserv.FAQ и все файлы с расширением doc:
mget mailserv.FAQ *.doc

put или s -
Переслать файл с локальной машины на удаленную. По аналогии с командой get указывается имя файла на локальном компьютере в качестве параметра. Вторым параметром может быть указано новое имя файла на удаленной машине (по умолчанию сохраняется имя локального файла). Пример:
put myfile for_allfile.

mput -
Переслать несколько файлов по списку или маске. Пример. Переслать файл myfile.txt и все файлы с расширением xls:
mput myfile.txt *.xls.

Кроме этих практически универсальных команд, отметим еще одну полезную услугу. Например, почтовый сервер фирмы "Демос" в корневом каталоге содержит файл FullIndex с полным списком файлов на ms@demos.su с комментариями, который высылается по команде index. Файл index с информацией о содержимом каталога можно найти в его корне. Версия FullIndex, упакованная программой gzip, сэкономит деньги на оплату трафика. Заказать ее можно командой:
get /FullIndex.gz.
Список новых поступлений за сутки (если они есть) можно получить с помощью
get /FullNewFiles.daily.

Чтобы разархивировать FullIndex.gz следует получить распаковщик:

get /pub/os/msdos/compress/gzip124.exe
или использовать gzip.exe из пакета UUPC начиная с версии 5.09.

Если распаковка удалась, но прочитать текст невозможно в кодировке КОИ-8, или пользователь принципиально использует только альтернативную кодировку кириллицы, можно воспользоваться конвертором (get /pub/os/msdos/convert/char/dostext.zip). Для перехода из системы кодирования Unix в систему DOS запустите

dostext pk имя_файла.
Осуществлять экранное переключение между альтернативной кодировкой и КОИ-8 "на ходу" позволяет специальная утилита, получить которую можно с помощью
get /pub/os/msdos/sys/cyrillic/r114.zip.

Следующий пример демонстрирует последовательность действий для получения файлов с какого-либо ftp-сервера (здесь - ftp://ftp.cdrom.com/):

ftp ftp.cdrom.com
cd /pub/cica
get README
uuencode a
get INDEX.ZIP
cd winsock
get dmailwin.zip
get twsk20b.zip
quit

Перед получением бинарных файлов необходимо установить режим uuencode (см. пример выше), так как автоматически конечный тип файла иногда определяется.

Если ответ не пришел в течение нескольких дней (например, вы заказывали большие файлы через другие узлы), не повторяйте запрос, дождитесь ответа, а в следующий раз установите максимальный размер письма в Kb командой:

psize 15.

Если же заказ дошел не в полном объеме, снова установите первоначальный размер письма (или размер по умолчанию) и запросите нужные части командой:

resend имя_файла номер_части_1 номер_части_2 ...

На различных серверах есть свои "правила хорошего тона", подобно тому, как в некоторые рестораны без галстука или в шортах могут не пустить. Поэтому при работе с FTP всякий раз следуйте пословице, гласящей, что в чужой монастырь со своим уставом не ходят... Стоимость пересылки информации c использованием механизма ftp зависит от конкретного узла и его ценовой стратегии. Некорректно говорить, исходя из видимой для вас разницы в ценах при работе, скажем, с ftpmail@elvis.ru и ftpmail@kiae.su, что, elvis стоит в два раза дороже. Как правило, "свой" сервер узла значительно дешевле, и если для кого-то "своим"

Hosted by uCoz